home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Apple WWDC 1996
/
WWDC96_1996 (CD).toast
/
Technology Materials
/
MacOS 8 Resources
/
Developer Tools
/
Mac OS 8 Interfaces & Libraries
/
Interfaces
/
AIncludes
/
Disks.a
< prev
next >
Wrap
Text File
|
1996-05-01
|
3KB
|
93 lines
;
; File: Disks.a
;
; Contains: Disk Driver Interfaces.
;
; Version: Technology: System 7.5
; Release: Universal Interfaces 3.0d3 on Copland DR1
;
; Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved.
;
; Bugs?: If you find a problem with this file, send the file and version
; information (from above) and the problem description to:
;
; Internet: apple.bugs@applelink.apple.com
; AppleLink: APPLE.BUGS
;
;
IF &TYPE('__DISKS__') = 'UNDEFINED' THEN
__DISKS__ SET 1
IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
include 'Types.a'
ENDIF
IF &TYPE('__OSUTILS__') = 'UNDEFINED' THEN
include 'OSUtils.a'
ENDIF
sony EQU 0
hard20 EQU 1
;
; Note:
;
; qLink is usually the first field in queues, but back in the MacPlus
; days, the DrvSts record needed to be expanded. In order to do this without
; breaking disk drivers that already added stuff to the end, the fields
; where added to the beginning. This was originally done in assembly language
; and the record was defined to start at a negative offset, so that the qLink
; field would end up at offset zero. When the C and pascal interfaces where
; made, they could not support negative record offsets, so qLink was no longer
; the first field. Universal Interfaces are auto generated and don't support
; negative offsets for any language, so DrvSts in Disks.a has qLinks at a
; none zero offset. Assembly code which switches to Universal Interfaces will
; need to compensate for that.
;
;
DrvSts RECORD 0
track ds.w 1 ; offset: $0 (0) ; current track
writeProt ds.b 1 ; offset: $2 (2) ; bit 7 = 1 if volume is locked
diskInPlace ds.b 1 ; offset: $3 (3) ; disk in drive
installed ds.b 1 ; offset: $4 (4) ; drive installed
sides ds.b 1 ; offset: $5 (5) ; -1 for 2-sided, 0 for 1-sided
qLink ds.l 1 ; offset: $6 (6) ; next queue entry
qType ds.w 1 ; offset: $A (10) ; 1 for HD20
dQDrive ds.w 1 ; offset: $C (12) ; drive number
dQRefNum ds.w 1 ; offset: $E (14) ; driver reference number
dQFSID ds.w 1 ; offset: $10 (16) ; file system ID
twoSideFmt ds.b 1 ; offset: $12 (18) ; after 1st rd/wrt: 0=1 side, -1=2 side
needsFlush ds.b 1 ; offset: $13 (19) ; -1 for MacPlus drive
diskErrs ds.w 1 ; offset: $14 (20) ; soft error count
ORG 18
driveSize ds.w 1 ; offset: $12 (18)
driveS1 ds.w 1 ; offset: $14 (20)
driveType ds.w 1 ; offset: $16 (22)
driveManf ds.w 1 ; offset: $18 (24)
driveChar ds.w 1 ; offset: $1A (26)
driveMisc ds.b 1 ; offset: $1C (28)
ORG 30
sizeof EQU * ; size: $1E (30)
ENDR
;
; pascal OSErr DiskEject(short drvNum)
;
IF GENERATINGCFM THEN
IMPORT_CFM_FUNCTION DiskEject
ENDIF
;
; pascal OSErr SetTagBuffer(void *buffPtr)
;
IF GENERATINGCFM THEN
IMPORT_CFM_FUNCTION SetTagBuffer
ENDIF
;
; pascal OSErr DriveStatus(short drvNum, DrvSts *status)
;
IF GENERATINGCFM THEN
IMPORT_CFM_FUNCTION DriveStatus
ENDIF
ENDIF ; __DISKS__